/*
package com.zzyl.config;

import com.zzyl.utils.JwtUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

*/
/**
 * @Author: 后端登录拦截器 Interceptor
 * @Description: TODO
 * @DateTime: 2024/5/18 19:30
 **//*


@Slf4j
@Component
public class TokenInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String url = request.getRequestURI(); // 获取请求的URI
        //  webConfig  已经配置过登录不拦截
        //1. 判断请求 url 中是否包含 login，如果包含，说明是登录操作，放行
        if (url.contains("login")){
            log.info("这是登录请求，直接放行");
            return true;
        }
        //2. 获取请求头中的令牌 token
        String token = request.getHeader("token");
        //3. 判断令牌是否存在，如果不存在，返回错误结果（未登录）
        if (!StringUtils.hasLength(token)){
            log.info("获取到的令牌不存在，返回401");
            //response.setStatus(HttpStatus.SC_UNAUTHORIZED);
            response.setStatus(HttpStatus.SC_UNAUTHORIZED);
            return false;
        }
        //4. 解析 token ，如果解析失败，返回错误结果（未登录）
        try {
            JwtUtil.parseJWT(token);
        } catch (Exception e) {
            log.info("出现异常,令牌不匹配或失效");
            response.setStatus(HttpStatus.SC_UNAUTHORIZED);
            return false;
        }
        //5. 放行
        log.info("令牌合法，放行");
        return true;
    }
}
*/
